/*
Copyright (C) 2022-2024 Inspur Corp. All Rights Reserved.

SPDX-License-Identifier: Apache-2.0
*/
package model

type CptResult struct {
	CptId      string `json:"cptId"`
	CptVersion int    `json:"cptVersion"`
}

type GetCptResult struct {
	CptJsonSchema CptJsonSchema `json:"cptJsonSchema"`
	CptBaseInfo   CptBaseInfo   `json:"cptBaseInfo"`
	CptMetaData   CptMetaData   `json:"cptMetaData"`
}

type CptJsonSchema struct {
	Title       string      `json:"title"`
	Description string      `json:"description"`
	Properties  []Propertys `json:"properties"`
}

type Propertys struct {
	Property    string `json:"property"`
	Type        string `json:"type"`
	Description string `json:"description"`
	Enum        string `json:"enum"`
}

type CptBaseInfo struct {
	CptId      string `json:"cptId"`
	CptVersion int    `json:"cptVersion"`
	Type       string `json:"type"`
}

type CptMetaData struct {
	CptPublisher string `json:"cptPublisher"`
	CptSignature string `json:"cptSignature"`
	ProofType    string `json:"proofType"`
	Updated      string `json:"updated"`
	Created      string `json:"created"`
}

type CptListResult struct {
	Id          string `json:"id"`
	Title       string `json:"title"`
	Publisher   string `json:"publisher"`
	CreatedTime string `json:"createdTime"`
	UpdatedTime string `json:"updatedTime"`
	CptVersion  int    `json:"cptVersion"`
	Status      string `json:"status"`
	IssuerName  string `json:"issuerName"`
}

type CptClaimPropertyResult struct {
	ClaimProperties []ClaimProperties `json:"properties"`
}

type ClaimProperties struct {
	Property string `json:"property"`
	Type     string `json:"type"`
}

type CptEnumListResult struct {
	CptEnumResult []CptEnumResult `json:"cptTitleInfo"`
}

type CptEnumResult struct {
	Title string `json:"title"`
	Id    string `json:"id"`
}

type IssuerResult struct {
	CptIssuerId string `json:"cptIssuerId"`
	IssuerId    string `json:"issuerId"`
}
